package com.ecoolex.ying.space.ws;

import java.util.List;

import com.ecoolex.framework.common.exception.BizException;
import com.ecoolex.framework.common.pojo.Page;
import com.ecoolex.framework.common.pojo.Pagination;
import com.ecoolex.framework.common.pojo.Sorting;
import com.ecoolex.ying.space.entity.EstateProjectActivityGoodsOrder;
import com.ecoolex.ying.space.entity.EstateProjectActivityGoodsOrderCustomer;
import com.ecoolex.ying.space.entity.EstateProjectActivityGoodsOrderDetail;
import com.ecoolex.ying.space.entity.EstateProjectActivityGoodsOrderRefundAudit;
import com.ecoolex.ying.space.pojo.SubmitEstateProjectActivityGoodsOrderDTO;
import com.ecoolex.ying.space.pojo.UpdateEstateProjectActivityGoodsOrderCustomerDTO;

public interface EstateProjectActivityGoodsOrderService {

	EstateProjectActivityGoodsOrder submit(SubmitEstateProjectActivityGoodsOrderDTO submit,String createUser) throws BizException;

	Pagination<EstateProjectActivityGoodsOrder> queryByOperationUserId(Integer status,Integer operationUserId,Page page);

	EstateProjectActivityGoodsOrder getByOperationUserId(Integer orderId,Integer operationUserId);
	
	Pagination<EstateProjectActivityGoodsOrder> query(Integer status,Sorting[] sorts,Page page);

	EstateProjectActivityGoodsOrder get(Integer orderId);
	
	EstateProjectActivityGoodsOrder get(String orderNo);
	
	void refundApply(EstateProjectActivityGoodsOrder record,String updateUser) throws BizException;
	
	List<EstateProjectActivityGoodsOrderDetail> detailList(Integer orderId);
	
	EstateProjectActivityGoodsOrderCustomer addCustomer(EstateProjectActivityGoodsOrderCustomer record,String createUser) throws BizException;
	
	EstateProjectActivityGoodsOrderCustomer editCustomer(EstateProjectActivityGoodsOrderCustomer record,String updateUser) throws BizException;

	EstateProjectActivityGoodsOrderCustomer updateCustomer(UpdateEstateProjectActivityGoodsOrderCustomerDTO record,String updateUser) throws BizException;
	
	EstateProjectActivityGoodsOrderCustomer getCustomer(Integer id);
	
	EstateProjectActivityGoodsOrderCustomer getCustomerByOrderId(Integer orderId);
	
	void cancelOrder(EstateProjectActivityGoodsOrder record,String updateUser) throws BizException;
	
	EstateProjectActivityGoodsOrderRefundAudit getRefundAudit(Integer auditId);
	
	Pagination<EstateProjectActivityGoodsOrderRefundAudit> queryRefundAudit(Integer status,Sorting[] sorts,Page page);
	
	void auditPassed(Integer auditId,String remark,Integer auditUserId,String updateUser) throws BizException;
	
	void auditRefused(Integer auditId,String remark,Integer auditUserId,String updateUser) throws BizException;
}
